import { Callout } from "nextra-theme-docs";

# デプロイ

<Callout type="info">

デプロイメントの章ではプラットフォーム構成の内容は省略します。必要に応じて、[クイック スタート](/ja/quick-start) の章と [`appsettings.json` 構成](/ja/config/appsettings) の章を参照してください。

</Callout>

GZCTF は、次のように推奨順にランク付けされたさまざまな実行可能なデプロイ方法を提供します。

## K8s クラスターのデプロイメント (持続可能なデプロイメント 👍)

GZCTF、データベース、チャレンジコンテナはすべて同じ k8s クラスター内にあり、名前空間を使用して分離されています。 k8sの利点を最大限に活かし、grafanaやprometheusなどの監視ツールを利用して監視することもでき、より完全な統計データも収集できますが、導入プロセスが複雑で学習コストが高くなります。 **ただし、継続的な展開には第一の選択肢です**。 [詳細を表示](/ja/deployment/k8s-only)

## Docker + K8s の個別のデプロイメント (一般ユーザーに最もおすすめ 👍)

GZCTF とデータベースは Docker インスタンス内にあり、リモート k8s がチャレンジコンテナ プラットフォームとして使用されます。 このような導入方法では、コストを抑えながら k8s のセキュリティと導入の利点を最大限に活用でき、導入プロセスがよりユーザーフレンドリーになります。 **k3s を k8s ディストリビューションとして使用すると、デプロイがやりやすいため、一般的な CTF 大会や学校大会に適しています**。 [詳細を表示](/ja/deployment/docker-k8s)

<Callout type="warning">

Docker + K8s 分離デプロイメントを使用する場合、**プラットフォームのトラフィックプロキシとトラフィックキャプチャ機能は使用できません**。

1 台のマシンしか持っていない場合、1 台のマシンで k3s と Docker を同時に実行し、Docker で GZCTF を実行することは強くお勧めしません。

</Callout>

## Docker 単一デプロイメント (テストのみ ⚠️)

GZCTF、データベース、チャレンジコンテナはすべて同じ Docker インスタンス内にあります。このデプロイ方法は、リソースが少ない 1 台のマシンにデプロイできます。ただし、**安全性が低く、リソース制限関連の機能が十分ではありません。単一マシンのテストには推奨され、最小デプロイのみに使用ください**。 [まだ作成中、クイックスタートを参照](/ja/quick-start)

## Docker Swarm クラスターのデプロイメント (推奨されません 🚫)

GZCTF、データベース、およびチャレンジコンテナはすべて Docker Swarm クラスター内にあります。Docker Swarm クラスターのデプロイメント機能は現在利用可能ですが、デプロイメントの経験が不足していることと、上記のデプロイメント方法と比較してセキュリティ上の問題が発生する可能性があるため、**これはお勧めできません**。
